#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <memory.h>
#include <math.h>
char mp[20];
char x[100];
char y[100];
char ret[100];
bool check(char* y,int k)
{
	if(k==10)
	{
		for(int i=0;i<strlen(y);i++)
		{
			if(!isdigit(y[i]))
				return false;
		}
	}
	else if(k==19)
	{
		for(int i=0;i<strlen(y);i++)
		{
			if(!(isdigit(y[i])||isupper(y[i])))
				return false;
			if(isupper(y[i]))
			{
				if(!(y[i]>='A' && y[i]<='I'))
					return false;
			}
		}
	}
	return true;
}
int main()
{

	scanf("%s %s",x,y);
	int ans=0;
	for(int i=0;i<10;i++)
	{
		mp[i]=i+'0';
	}
	for(int i=10;i<=18;i++)
	{
		mp[i]='A'+ans;
		ans++;
	}
	int a=0;
	for(int i=0;i<strlen(x);i++)
	{
		a=a*10+(x[i]-'0');
	}
	if(!(a==10||a==19))
	{
		printf("DATA ERROR!");
		return 0;
	}
	if(a==10)
	{
		if(!check(y,10))
		{
			printf("DATA ERROR!");
			return 0;
		}
		
		int pos=0;
		char tmp[100];
		int b=0;
		for(int i=0;i<strlen(y);i++)
		{
			b=b*10+(y[i]-'0');
		}
		while(b)
		{
			tmp[pos]=mp[b%19];
			pos++;
			b/=19;
		}
		tmp[pos]='\0';
		pos=0;
		for(int i=strlen(tmp)-1;i>=0;i--)
		{
			ret[pos++]=tmp[i];
		}
		
		printf("%s",ret);
	}
	else if(a==19)
	{
		if(!check(y,19))
		{
			printf("DATA ERROR!");
			return 0;
		}	
		int pos=0;
		double res=0;
		for(int i=strlen(y)-1;i>=0;i--)
		{
			if(isupper(y[i]))
			{
				res+=(y[i]-'A'+10)*pow(19,pos);
			}
			else{
				res+=(y[i]-'0')*pow(19,pos);
			}
			pos++;
		}
		printf("%.0lf\n",res);		
	}
	
	return 0;
}
